package cn.iocoder.yudao.module.system.service.tenant;

import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantModuleDO;
import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantModuleMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;

@Service
public class TenantModuleServiceImpl implements TenantModuleService{

    @Resource
    private TenantModuleMapper tenantModuleMapper;

    @Override
    public Long createTenantModule(TenantModuleDO tenantModuleDO) {
        // 校验是否存在
        if (!validModuleExist(tenantModuleDO.getModuleCode())) {
            tenantModuleMapper.insert(tenantModuleDO);
        }
        return tenantModuleDO.getId();
    }

    private boolean validModuleExist(String code) {
        return tenantModuleMapper.selectOne(TenantModuleDO::getModuleCode, code) != null;
    }

    @Override
    public void batchCreateTenantModule(List<TenantModuleDO> list) {
        list.forEach(this::createTenantModule);
    }

    @Override
    public List<TenantModuleDO> getModuleList() {
        return tenantModuleMapper.selectList();
    }
}
